// import config from '@/config';
import utils from '@/utils/utils';
import store from '@/store';
import request from './request';
// import clApi from '@/api';

// 无网络和http错误回调
// function failCallback(error, fail) {
//   console.log(error);
//   if (error.statusCode) {
//     utils.toast(config.httpErrorText(error.statusCode));
//   } else {
//     utils.toast(config.networkErrorText);
//   }
//   uni.hideLoading();
//   fail && fail(error);
// }

// // 服务器报错回调
// function serverErrorCallback(res, fail) {
//   utils.toast(res.errMsg || config.serverErrorText);
//   uni.hideLoading();
//   fail && fail(res);
// }

// #ifdef MP-WEIXIN
function weixinLogin({ success, fail }) {
  // 已有 已经授权
  if (store.state.baseInfo.token) {
    console.log(9000000);
    success(store.state);
    return;
  }

  // uni.showLoading({
  //   title: '登录授权中',
  // });

  wx.login({
    success: res => {
      const code = res.code;
      request(`/api/boss/code/auth?code=${code}`, {
        data: {
          code,
        },
      })
        .then(res => {
          console.log(17777, res);
          if (res && res.data.loginFlag) {
            console.log(12222223);
            // 已登录，保存token
            store.dispatch('baseInfo/setBaseInfo', {
              token: res.data.token,
              perms: res.data.perms,
              roles: res.data.roles,
              userInfo: {
                loginFlag: res.data.loginFlag,
                mobile: res.data.mobile,
              },
            });
            success();
          } else {
            utils.jumpToOtherPage({
              jumpUrl: '/pages/login/index',
            });
          }
        })
        .catch(() => {
          utils.jumpToOtherPage({
            jumpUrl: '/pages/login/index',
          });
        });
    },
    fail: e => {
      console.log(e);
      fail && fail();
      utils.toast('微信授权失败，请检查网络后重试');
    },
  });
}
// #endif

function checkPerm(perm) {
  const perms = store.state.baseInfo.perms || [];
  const roles = store.state.baseInfo.roles || [];
  console.log('role:' + roles)
  let roleAdmin = roles.find( ele => ele === 'admin')
  if (roleAdmin){
    return true;
  }else{
     let permStr = perms.find( pr => pr === perm);
     if (permStr){
       return  true;
     }
  }
  return false;

}

export default {
  clMemberLogin({ success, fail }) {
    // #ifdef MP-WEIXIN
    weixinLogin({ success, fail });
    // #endif
  },

  // #ifdef MP-WEIXIN
  weixinLogin,
  // #endif

  checkPerm,
};
